static void SplitTemperature() // evaluates separately rotational and tranlational temperatures  // 27/3/2009 not really used anymore
{
  int n, rotWatDOFs = 0, transWatDOFs = 0, rotLipDOFs = 0, transLipDOFs = 0;
  real rotWatKinEnergy = 0., transWatKinEnergy = 0., rotLipKinEnergy = 0., transLipKinEnergy = 0.; // initialise

  DO_SITE {
    if ( WATER_TYPE == site[ n ].type ) {
      rotWatDOFs   += 3;
      transWatDOFs += 3;
      rotWatKinEnergy += VSumSqDiv( siteAngularMomentum[ n ], ssdInertia );              
      transWatKinEnergy += VLenSq( siteVelocity[ n ] ) * mass[ site[ n ].type ]; 
    } else { // if not water
      transLipDOFs += 3;
      transLipKinEnergy += VLenSq( siteVelocity[ n ] ) * mass[ site[ n ].type ]; 
      if ( SRB == site[ n ].mechType ) {
	rotLipDOFs += 2;// add two degrees of freedom (symmetric rigid body)
	rotLipKinEnergy += VLenSq( siteAngularMomentum[ n ] ) / inertia[ site[ n ].type ]; // rotational contribution from glys and tails ellipsoids
      }
    }
  }
  
  rotWatKinEnergy   *= .5;
  transWatKinEnergy *= .5;
  rotWatTemp.val   = 2. * rotWatKinEnergy   / rotWatDOFs; 
  transWatTemp.val = 2. * transWatKinEnergy / transWatDOFs; 

  rotLipKinEnergy   *= .5;
  transLipKinEnergy *= .5;
  rotLipTemp.val   = 2. * rotLipKinEnergy   / rotLipDOFs; 
  transLipTemp.val = 2. * transLipKinEnergy / transLipDOFs; 
}
